<?php
class sfUserAvatarValidatedFile extends sfValidatedFile
{
  public function save($file = null, $fileMode = 0666, $create = true, $dirMode = 0777)
  {
    $file_name = parent::save($file, $fileMode, $create, $dirMode);

    //Обжим
    $this->generateThumbnail ( $file_name );
    $this->generateSmallThumbnail ( $file_name );
    $this->generateThumbnailmain ( $file_name );
    /////
    
    return $file_name;
  }
  
public function generateThumbnail($value) 

	{
		@unlink($uploadDir . '/users/avatar/thumbnail/' . $value);
		$uploadDir = sfConfig::get ( 'sf_upload_dir' );
		
		/*
		 * НАЧАЛО
		 * проверка на размер файла и размера файла по умолчанию (ширина и высота)
		 * во избежание искажения оного
		 */
		$_size=(getimagesize($uploadDir . '/users/avatar/' . $value));
		$_width=$_size[0];
		$_height=$_size[1];
		
		
		/*
		 * КОНЕЦ
		 * проверка на размер файла и размера файла по умолчанию (ширина и высота)
		 * во избежание искажения оного
		 */
		
		$thumbnail = new sfThumbnail ( sfConfig::get ( 'app_user_avatar_width' ), sfConfig::get ( 'app_user_avatar_height' ) );
		$thumbnail->loadFile ( $uploadDir . '/users/avatar/' . $value );
		$thumbnail->save ( $uploadDir . '/users/avatar/thumbnail/' . $value );
	
	}
	
	public function generateSmallThumbnail($value) 

	{
		@unlink($uploadDir . '/users/avatar/_thumbnail/' . $value);
		$uploadDir = sfConfig::get ( 'sf_upload_dir' );
		$thumbnail = new sfThumbnail ( sfConfig::get ( 'app_user_avatar_small_width' ), sfConfig::get ( 'app_user_avatar_small_height' )  );
		$thumbnail->loadFile ( $uploadDir . '/users/avatar/' . $value );
		$thumbnail->save ( $uploadDir . '/users/avatar/_thumbnail/' . $value );
	
	}
	
	public function generateThumbnailmain($value) 
	{
		$uploadDir = sfConfig::get ( 'sf_upload_dir' );
		$thumbnail = new sfThumbnail ( 900, 900 );
		$thumbnail->loadFile ( $uploadDir . '/users/avatar/' . $value );
		$thumbnail->save ( $uploadDir . '/users/avatar/' . $value );		
	}
	
}